package 集合;

import java.util.*;

public class Collection常用方法 {
    @SuppressWarnings({"all"})
    public static void main(String[] args) {
        List list = new ArrayList<>();
        list.add("小溪1");
        list.add("小溪1");
        list.add("小楠2222");
        list.add("小呗33");
        list.add("小栋444");

        //反转List
        Collections.reverse(list);
        System.out.println(list);

        //打乱集合，随机排序
        Collections.shuffle(list);
        System.out.println(list);

        //sort,默认升序排序
        List list1 = new ArrayList<>();
        list1.add(1);
        list1.add(3);
        list1.add(2);
        Collections.sort(list1);
        System.out.println(list1);
        //sort 传入一个比较器
        Collections.sort(list, new Comparator<Object>() {
            @Override
            public int compare(Object o1, Object o2) {
                //根据字符串的长度
//                return ((String) o1).length() - ((String) o2).length();
                return ((String) o1).compareTo((String) o2);
            }
        });
        System.out.println(list);

        //swap 指定List集合中的i出元素和j处元素进行交换
        Collections.swap(list1,0,1);
        System.out.println(list1);

        //max 自然输出，返回集合中最大的
        Comparable max = Collections.max(list1);
        System.out.println(max);
        //max 指定比较器
        Object max1 = Collections.max(list, new Comparator<Object>() {
            @Override
            public int compare(Object o1, Object o2) {
                return ((String) o1).length() - ((String) o2).length();
            }
        });
        System.out.println(max1);

        //min 返回集合中最下的元素，也可以指定排序规则
        Comparable min = Collections.min(list1);
        System.out.println(min);
        //统计集合和元素出现的位置
        int num = Collections.frequency(list, "小溪1");
        System.out.println("小溪1出现的次数=" + num);

        ArrayList<Object> list3 = new ArrayList<>();
        //copy 为了完整拷贝一个数组，我们先给destination赋值，大小list集合一样
        for (int i = 0; i < list1.size(); i++) {
            list3.add("");
        }
        Collections.copy(list3, list1);
        System.out.println("list3" + list3);

        //替换
        Collections.replaceAll(list, "小溪1","呵呵");
        System.out.println(list);

    }
}
